package com.course.utils;



import com.course.pojo.ResultDTO;
import lombok.extern.slf4j.Slf4j;

import org.springframework.web.bind.annotation.ExceptionHandler;

import org.springframework.web.bind.annotation.RestControllerAdvice;

//公共Ctroller异常处理类
//@ControllerAdvice
//@ResponseBody
//注解;对controller进行增强
@RestControllerAdvice
@Slf4j
public class ControllerExceptionHandler {

    //进行怎样的增强：是通过方法实现的。

    //作为默认未知异常处理
    //该注解：一旦捕捉到Controller异常，则接管请求和响应
    //该注解默认去拦截所有异常
//    @ExceptionHandler
    @ExceptionHandler(Exception.class)
//    @ResponseBody
    public ResultDTO handleException(Throwable e){
        //打印异常（可选）,可以写入日志
        e.printStackTrace();
        log.info(e.getMessage());
        return new ResultDTO(false,"未知异常，操作失败！");
        //可以将消息写活，内容写在自定义异常中
//        return new ResultDTO(false,e.getMessage());
    }


    //只处理算数异常
    @ExceptionHandler(RuntimeException.class)
//    @ResponseBody
    public ResultDTO handleCustomException(Throwable e){
        //打印异常（可选）,可以写入日志
        e.printStackTrace();
        log.info(e.getMessage());
        //可以将消息写活，内容写在自定义异常中
        return new ResultDTO(false,e.getMessage());
    }


}
